package org.example;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;

import java.util.List;

public class RedisTransaction {

    static final Jedis conn = new Jedis("localhost", 6379);


    public static void main(String[] args){

        new RedisTransaction().Transaction();
        conn.flushDB();

    }


    /**
     * redis 事务
     *
     * redis的事务很简单，他主要目的是保障，一个client发起的事务中的命令可以连续的执行，而中间不会插入其他client的命令。
     *
     * exec()  返回值： 事务块内所有命令的返回值，按命令执行的先后顺序排列。 当操作被打断时，返回空值 null 。
     */
    public void Transaction(){
        Transaction multi = conn.multi();
        //一系列redis操作  只有当调用exec() 指令时才回去批量执行
        multi.set("date","2024-05-12");
        multi.zadd("bookScore",8.0,"肖申克的救赎");

        List<Object> exec = multi.exec();
        System.out.println(exec);

    }








}
